/** \file chatgpt.c 
 *  \brief chatgpt
 */
#include <assert.h>
#include <fcntl.h>
#include <pthread.h>
#include <signal.h>
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <unistd.h>
#include <signal.h>
#include <string>

#include "rk_mpi_amix.h"
#include "speechnls.h" 

#include "het_ringbuf.h" 
#include "het_chatgpt.h"  // <-- 唯一必须包含的头文件

#if 0
int send_quit_request(long type,const char *cmdData) {
    int msgid;
    audio_msg_t msg;

    // 创建消息队列
    msgid = msgget(MSG_KEY, 0666 | IPC_CREAT);
    if (msgid == -1) {
        perror("msgget");
        return -1;
    }

    // 准备消息
    msg.msg_type = type;
    strncpy(msg.cmd, cmdData, sizeof(msg.cmd) - 1);
    msg.cmd[sizeof(msg.cmd) - 1] = '\0';

    // 发送消息
    if (msgsnd(msgid, &msg, sizeof(msg.cmd), 0) == -1) {
        perror("msgsnd");
        return -1;
    }

    return 0;
}
void handle_message(audio_msg_t *msg) {
    switch (msg->msg_type) {
        case MSG_TYPE_PLAY:
            break;
        // 其他消息类型的处理逻辑
        default:
            printf("Unknown message type: %ld\n", msg->msg_type);
            break;
    }
}
void *msg_proc(void *arg){
	int msgid;
	audio_msg_t msg;

	// 创建消息队列
	msgid = msgget(MSG_KEY, 0666 | IPC_CREAT);
	if (msgid == -1) {
		perror("msgget");
		return NULL;
	}

	while (global_run) {
		// 接收消息
		if (msgrcv(msgid, &msg, sizeof(msg.cmd), 0, 0) == -1) {
			perror("msgrcv");
			return NULL;
		}

		// 处理消息
		handle_message(&msg);
	}

	// 删除消息队列
	if (msgctl(msgid, IPC_RMID, NULL) == -1) {
		perror("msgctl");
		return NULL;
	}
	return NULL;
}
#endif